home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
HAM_RAD
/
PROPAGAT
/
3068.ZIP
/
MAPPER.DOC
< prev
next >
Wrap
Text File
|
1991-11-24
|
26KB
|
485 lines
MAPPER86/87 .. A DX MAP DRAWING and Propagation Program
for IBM PC Compatibles with graphics capability.
Version 7.1
by
Dennis P. Murray
11165 McDonald Street
Culver City, Ca. 90230
CompuServ 72770,2765
10 August, 1991
This program, written for BASIC compilers such as MICROSOFT QUICK BASIC or
BORLAND TURBO BASIC, displays a map of the world centered on a
user-selectable QTH, and does propagation predictions based upon one of 4
possible methods based upon modified MINIMUF 3.5 or MAXIMUF 3.0 methods. It
shows the regions of sunlight and darkness around the world, and updates
these regions automatically at user- specified time intervals. It can also
accept arbitrary times and dates at the user option. The program accepts
DXCC prefixes or latitude/longitude values for the DX location, draws the
path from the home QTH to that location, and displays the range, azimuth
and wave launch elevation angle from the home QTH. The user can select
either short or long paths; the sunspot number; antenna height, gain, and
polarization for both home QTH and DX station; transmit power; and the
minimum wave launch angle to be used for propagation prediction. The
propagation prediction gives the MUF (maximum usable frequency), LUF
(lowest usable frequency) based upon E-layer screening, and the minimum
number of F-layer hops for the minimum launch angle. Predictions of signal
strength are made for Ham Band frequencies which include D-layer
absorption, reflection losses, and transmit and receive antenna losses due
to ground plane reflection at low elevation angles.
This program is written for IBM PC compatible computers with a Graphics
capability and color display. The program runs quite quickly on an AT clone
with a hard disk and 640k of RAM, but it might be a 'dog' on a floppy-only
machine because it must read some long files for the map data.
The program is being uploaded in two versions, named MAPPER86 and MAPPER87.
MAPPER86 is compiled using 'alternate math' option of the Microsoft BASIC
7.1 Professional Development System in order to use floating point
computations under the Microsoft Binary Format which run much faster on
machines without 80x87 math co-processors than do computations under the
IEEE format supported by QBasic version 4.0 and later. MAPPER87 can be
compiled under QBasic v 4.5 or BC7.1 using the IEEE floating point math
option. It will run on machines with or without a Math Coprocessor, but it
is very slow without one because of the lousy software emulation of the
80x87 routines which Microsoft has provided. The MAPPER86 version is
strongly recommended if you don't have an 80x87.
Both versions now support all graphics adapters ( CGA, EGA, EGA/Monochrome,
MCGA, VGA, and HERCULES). If you want to use the Hercules mode you must
first load the Microsoft Hercules driver MSHERC.COM which I have included
in the package courtesy of Microsoft.
Version 7.0 differs from earlier releases in that it has an extended DX
Prefix list, uses a more detailed world map data file with a different file
format than previous versions, and is somewhat more 'user friendly' about
accepting input data. It also provides a facility for printing out a 24
hour summary of propagation conditions for a given path, together with a
plot of the NUF over that period. An 80 column printer which recognizes a
Form Feed command is needed for this option.
Most importantly, Version 7 has added an entirely new method for
propagation predictions based upon MAXIMUF 3.0, and allows the user to
select whether the Maximum Useable Frequency ( MUF ) uses the ionospheric
hops nearest to the transmitter and the receiver for its determination, or
takes the worst MUF among all the hops along a multi-hop path.
The author does not intend to support this software, but is simply
releasing it into the public domain for non-commercial use by HAMS who know
what they are doing with their computer. The BASIC source code is included
for that reason.
The following files are a part of the MAPPER system of files:
1- MAPPER86/87.BAS The Program Source Code Specific for Either
Q-BASIC v4.5 or BASIC 7.1 PDS
2- MAPPER1.INC An 'INCLUDE' File Containing the beginning
source code common to both versions.
3- MAPPER2.INC An 'INCLUDE' File containing most of the
mapping source code common to both versions.
4- MAP-SUBS.BAS Source code for the propagation prediction
calculations.
5- MAP-COM.INC An 'INCLUDE' File containing some COMMON and DIM
statements needed by both code modules.
6- MAP-DEF.INC An 'INCLUDE' file containing function definitions
needed by both modules.
7- MAPPER86/87.EXE the Q-BASIC 4.5 or BASIC 7.1 executable code.
8- MAPPER.ATL An Atlas of DXCC countries and their
latitudes, longitudes, and DX prefix.
This is an ASCII file ,sorted by prefix,
which can be added onto by the user with
a word processor or text editor.
9- PREFIX.ATL An Extended Atlas of country prefixes and
their latitudes, longitudes. This file uses
the official internationally designated
prefix ranges to identify the country and
permits identification of some of the more
exotic DX call signs which have gotten more
common. This is an ASCII file ,sorted by
prefix, which can be added onto by the user
with a word processor or text editor.
10- MAPPER.DEF A short file used to store some default
values used by the program.
11- MAPPER.DOC This instruction file.
12- WORLD.All A large file containing the lat/lon of the
world's borders. This is used to recompute
the map whenever the map center point is
redefined.
13- MSHERC.COM A Microsoft program to permit the use of a
Hercules video adapter with MAPPER87. It must
be executed prior to executing MAPPER87. This
option is not available for MAPPER86 because
that version is compiled under Quick Basic
Version 3 which did not support Hercules
video.
14- MAPPER1/2.SCR Large files which are used to store and
retrieve the screen data for a world map
centered on the user's location. These files
are not supplied in the .ARC files but
created by the program when it is first used
and they are rewritten whenever the user
changes the 'Home' location. ( It is
interesting to view the world as seen from DX
locations.) This data is read into a large
array in memory to permit rapid redrawing of
the map as the sun moves. The file is written
into the integer array NSTORE by BLOAD and
BSAVE commands. Because the program uses a
lot of memory to speed things up, this array
is DYNAMIC and does not generally reside in
the normal BASIC data segment.
15- SEA-MAP.DAT A data file which contains a raster map of
the world's oceans in a bit-map format in 1
degree intervals of latitude and longitude.
This file is read into an array when the
program is started. It is used to determine
whether propagation 'bounce' points are on
land or sea in order to compute the correct
terrain reflection loss for that hop.
To accommodate different uses I have broken the file set into three ARC
distribution files:
1- MAPR86.ARC is intended for those who only want to
operate MAPPER86 and who don't have math
coprocessors. It contains the following
files:
MAPPER.ATL
MAPPER.DEF
MAPPER.DOC
MAPPER86.EXE
MSHERC.COM
PREFIX.ATL
WORLD.ALL
SEA-MAP.DAT
2- MAPR87.ARC is intended for those who only want to
operate MAPPER87 and who do have math
coprocessors. It contains the following
files:
MAPPER.ATL
MAPPER.DEF
MAPPER.DOC
MAPPER87.EXE
MSHERC.COM
PREFIX.ATL
WORLD.ALL
SEA-MAP.DAT
3- MAPPER.ARC is intended for those who are interested in
studying, modifying, customizing, or
recompiling the MAPPER program to suit their
own purposes. It contains the source code
files for the MAPPER system:
MAPPER.DOC
MAPPER1.INC
MAPPER2.INC
MAPPER86.BAS
MAPPER87.BAS
MAP-SUBS.BAS
MAP-COM.INC
MAP-DEF.INC
The author encourages the distribution of this program to anyone who might
find it useful, or onto bulletin boards which deal with HAM radio or
shortwave listening. Please make sure to include ALL the required files for
one of the ARC distribution sets described above in any uploading however.
INSTRUCTIONS:
To run this program simply enter 'MAPPER86' or 'MAPPER87'. After an initial
message explaining the program is displayed, and you press any key to
proceed, you will be presented with a 8-choice initial menu which allows
you to change the default values of:
1- Sunspot number
2- Home QTH latitude and longitude
3- The time interval at which the daylight/darkness areas are
redrawn.
4- Transmitter power output.
5- Minimum elevation angle for propagation predictions.
6- Graphics Mode
7- Method for Propagation prediction.
8- Change or View the Set of Frequency Bands, and the antenna
heights, gains, and polarizations for each band. This will drop
you into a submenu which permits your custom definition of up to
10 Bands of interest, together with antenna parameters for both
home and DX stations. SWLs may want to use this feature to
change the frequency set to their favorite HF Broadcast bands.
Pressing the appropriate number key will put up prompts to allow changes to
these variables, and will return you to this menu after a change is
entered. (Important: Make sure you select the proper display type for your
machine at this menu when you first run it. This package will have a file
of my own default values for the parameters in this menu, and they are
unlikely to be the correct values for your machine.)
After you have made the appropriate changes pressing <ENTER> at the menu
prompt will store these new values in the MAPPER.DEF file and proceed on to
the map drawing.
The map drawing will first put up a blank box, then calculate the
position of the sun at the time and date currently held by the DOS, draw
the solar terminator ( it looks like a satellite ground trace ), and color
the sun-lit portions of the world in red. It will then go on to draw the
country boundaries, color the oceans blue, and color the USA green. The
land areas which are in darkness will show up in black. The program may
miss coloring part of the oceans blue because of the position of the solar
terminator blocking the PAINT commands used in the subroutine at line 8000
... . I got tired of adding ocean points to this routine to cover all the
contingencies.
After the map is drawn a Menu bar will appear on the bottom line of
the screen, with 9 choices selected by the function keys:
f1- Select DX Prefix.
You will be prompted to enter a DX prefix ( eg. ZS for
S. Africa ). The program will then search the DX atlas
for an occurrence of this prefix. It will display all
of the entries ( ie ZS1,ZS2,... ) that contain this
string and ask you to select one. If the number of
candidate entries is large you can simply <ENTER> to
continue the search.
When a selection is made the program will fetch
the location of the prefix, make a propagation
prediction for the currently selected date and time,
draw the path from your QTH to that location, and
display sundry useful information at the top of the
screen. On the left of the screen the signal strength
predictions will be shown for all Ham bands for which
the frequency is more than 80% of the lowest usable
frequency (LUF), less than 120% of the maximum usable
frequency (MUF), and whose predicted signal strength
is higher than -20dB relative to 0.5 microvolts into a
50 ohm receiver input.
For each band which meets these criteria I display the
frequency, the absorption losses (Labs), the ground
reflection losses (Lref), the transmit and receive
antenna losses due to ground reflection ( Ltx, Lrx ),
and signal strength ( Prcv ). The losses are given in
dB. The signal strength is given in dB relative to 0.5
microvolts into 50 ohms. This is about an S-1 signal
level for most Ham receivers, and S-9 usually
corresponds to 50 microvolts at the antenna terminals.
Thus a signal strength of 40 dB would correspond to a
S-9 prediction.
The user should be cautioned that the signal strength
predictions are very uncertain. I only calculate paths
via the F2 layer, and there a great number of other
propagation modes possible which may be better or
worse than the pure F2 mode. Don't blame the author if
this program says that you can't possibly work
Australia when you are hearing VK's with S-9 signals.
These are only crude indications of the likelihood of
a path being open.
f2-Specify Country Name.
Same as option 1 except that you are prompted for the
name of a country ( or a subset of that name such as
'AUS', which will find both Austria and Australia ).
The search process is insensitive to the case of your
entry.
f3-Specify Lat/Lon.
Same as the above option except you will be prompted
to enter the latitude and longitude of the desired DX
location.
f4-Select Date/Time.
Prompts for a new date and time to be used to
calculate solar terminator and make propagation
predictions. <ENTER> responses to either of these
prompts will fetch the current DOS value of date or
time. This option will also turn off the automatic
updating of the terminator and map redraw.
f5-Use Real Time.
This option will reset the above option to the real
(DOS) date and time and enable the auto update
feature.
f6-Toggle Between Short and Long Path.
This toggles the path from the long path option back
to short path and vice-versa
f7-Change Parameters.
This returns you to the 7 choice initial menu to
change the various default parameters such as sunspot
number, antenna heights, power, etc.
f8-Toggle Printed Output of 24 hour Propagation Predictions
on or off. When F8 is hit for the first time it 'toggles'
this function on and subsequent hits turn the option on and
off in sequence. When this option is 'on' it prints
out the same information on propagation that is displayed
on the screen, but does it for an entire day at one hour
intervals, and plots a graph of the MUF versus time. The
printing starts when you select a new DX location, not
immediately after the function is toggled on.
f9-Quit.
Exits the program and returns you to DOS.
The program is entirely menu-driven so you don't have to remember
any special commands to use it.
Good luck!!
Instructions for recompiling:
Some of you may wish to customize this program in some way, so I have
included the BASIC source code. If you make changes you will have to
recompile and LINK the code. The following instructions may help you.
If you have a math coprocessor or if you don't care how slow the program
runs then compile using BASIC PDS 7.1 or Quick-Basic 4.0 or later:
Compile and LINK Using the following command lines:
BC MAPPER87/D/X/O/V; <Rtn>
BC MAP-subs/D/X/O; <Rtn>
LINK MAPPER87+MAP-SUBS; <Rtn>
If you don't have a coprocessor and you want faster execution then compile
using BASIC PDS 7.1 with the /FPa (alternate math package option).
BC MAPPER86/D/X/O/V/FPa; <Rtn>
BC MAP-SUBS/D/X/O/FPa; <Rtn>
LINK MAPPER86+MAP-SUBS; <Rtn>
This program is totally incompatible with the BASIC Interpreter which IBM
and Microsoft supply with their DOS. (i.e. BASICA of GWBASIC ). There is
not a prayer of making it run under the interpreter.
Some Technical Information:
The propagation calculations are based upon either the MINIMUF 3.5 method
or the MAXIMUF 3.0 method, but with many modifications by this author. I am
indebted to Robert R. Brown, NM7M, for providing me with the MAXIMUF 3.0
method for MUF calculation. I had been trying (unsucessfully) since Version
2 of this program to obtain this method because it has been evaluated as
the most accurate PC-based method in comparison with IONCAP ( The elaborate
Ionospheric model developed by the Institute of Telecommunication Sciences
in Boulder, CO. which is normally used as a standard of comparison). The
method is due originally to Raymond Fricker of the BBC External Services.
Its key element is a mathematical model for the vertical incidence sounding
frequency obtained by noting that the ionosphere mainly depends upon the
solar zenith angle and geomagnetic latitude. He then did a curve-fit of the
the CCIR Report 340 vertical sounding frequency to the function
Fv= A*Cos( B*(T-C) )* Cos ( Z+D))^0.5
where T is the local time, Z is the geomagnetic latitude, and A,B,C,D are
'constants' which depend upon Sunspot number and season of the year. Having
obtained the main dependence in this form, he the went on to derive a set
of 20 'correction' terms to improve the fit. The method also uses a
curve-fit to the virtual height of the F2 layer. The method's equations can
be obtained from examination of the Subroutine CRIT.FREQ in the
MAP-SUBS.BAS source code.
I have made a number of enhancements to the 'standard' propagation
calculations:
1- The 'standard' CCIR method for hand-calculating MUF uses only the
first and last ionospheric bounce points ( the two control point
method ), This method is available in MAPPER. In addition, I have
provided the user with the option to let MAPPER evaluate the MUF at
every hop and select the worst-case condition out of all of them.
This results in more pessimistic MUF and LUF estimates than the
endpoint method because conditions over parts of the total path may
be much different than conditions at only the ends of the path. A
path with a hop near the near the North pole is an important example.
I leave it to the user to try the various methods and see which works
best for you. I would be interested in any results you care to share.
2- I have included the E-layer screening frequency and lowest-
usable frequency ( LUF ) estimation technique given in chapter 4
of 'Amateur Radio Software ', by John Morris GM4ANB , RSGB
Books, Lambda House, Cranborne Road, Potters Bar, Hertfordshire
EN6 3JW. The subroutine starting at line 45000 contains this
calculation.
3-I have used what apparently is the HAM convention for longitudes
being positive-West for the input and output in this program, in
the PROPAGATE subroutine, and in the DX Atlas file MAPPER.ATL.
However, in the internals of the program I immediately reverse
the sign of the longitude. Being an engineer by training I think
in terms of right-handed coordinate systems! Therefore those who
want to modify the program should be wary of the sign of the
longitude being used.
4-Note that I have changed the names of the variables in the
MINIMUF subroutine from the standard values to names which are
descriptive of what the variable actually is.
5-I have augmented the propagation predictions with a signal
strength prediction. For each ionospheric control (bounce) point
an estimate of the D-layer absorption is made according to the
method in chapter 5 of Davies, "Ionospheric Radio Propagation",
NBS monograph 80, 1965. The total D-region absorption is summed
up for all control points. The subroutine at line 46000 contains
this calculation.
6-In addition, a calculation of the loss due to ground reflection is
made for each ground reflection point along the path. At each of
these points the array SEA-MAP is decoded for the reflection point
location and if it is a sea point then the reflection coefficient for
sea water is calculated ( dielectric constant of 80, conductivity of
4 mho/m ). If the reflection point is over land then a dielectric
constant of 4 and conductivity of 0.01 mho/m are used. The Fresnel
reflection coefficients for both horizontal an vertical polarization
are power-averaged to account for the random polarization of the wave
due to Faraday rotation at HF frequencies. I have also modified the
reflection coefficients to account for surface roughness. A RMS
surface roughness of 4m is used on the sea, and 15m for land points.
The subroutine REFLECT at line 41000 of module MAP-SUBS makes the
reflection calculations.
7-To account for the fact that most Hams have fairly low antenna
heights, thus suffer large losses at low elevation angles, I
explicitly calculate the multipath cancellation losses for each
antenna in the subroutine MULTIPATH at line 42000 in MAP-SUBS.BAS.
This is the standard Fresnel reflection calculation without surface
roughness included. Most urban locations will be worse than this
calculation suggests because buildings in the foreground will
actually shadow the low angle line-of-sight and modify the reflection
area. If you know you have poor line-of-sight you should modify the
minimum launch angle setting at the initial menu appropriately.